<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/templates/mantenimiento.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                xmlns:r="http://richfaces.org">
    <ui:define name="title">
        Agendamiento manual fisiatría
    </ui:define>    
    <ui:define name="datos">
        <center>
            <h:panelGrid id="panelDatos">
                <h:form id="formDatos">
                    <p:panel   header="Datos">
                        <h:panelGrid id="datosAgenda" columnClasses="alignTop,alignTop,alignTop" columns="3">
                            <h:panelGrid >
                                <p:calendar   pages="3" label="Fecha de agenda" title="Fecha de agenda"  value="#{jsfAgendaTerapia.fechaAgenda}"  id="fecha">
                                    <p:ajax event="dateSelect" process="@this"  listener="#{jsfAgendaTerapia.limpiarMedico()}" update="formDatos"/>
                                </p:calendar> 
                                <p:dataGrid  var="dia" id="dias"
                                             value="#{jsfAgendaTerapia.listaDia}" columns="2" >
                                    <p:selectBooleanCheckbox id="extra" value="#{dia.asignada}">
                                    </p:selectBooleanCheckbox>
                                    <h:panelGrid columns="2" >
                                        <h:outputText value="#{dia.cdiNombre}" />
                                    </h:panelGrid>
                                </p:dataGrid>
                            </h:panelGrid>

                            <h:panelGrid columns="4"  >


                                <h:outputText value="Terapia" />
                                <p:selectOneListbox style="width: 140px" required="true"  scrollHeight="125" label="Medico" id="medico"  converter="JsfConverterTipoTerapia" value="#{jsfAgendaTerapia.cexTipoTerapia}"  >                              
                                    <f:selectItems value="#{jsfAgendaTerapia.selectedItemTerapia}" var="item"/>
                                    <p:ajax event="change" process="@this fecha fechaFin dias" update="formDatos " listener="#{jsfAgendaTerapia.buscarAgenda()}" />
                                </p:selectOneListbox> 
                                <f:verbatim/>
                                <f:verbatim/>


                                <f:verbatim/>
                                <p:message for="medico" />
                                <f:verbatim/>
                                <f:verbatim/>


                                <h:outputText value="Sesiones" />
                                <h:panelGrid columns="3" >
                                    <p:inputText label="Número de sesiones" value="#{jsfAgendaTerapia.numeroSesiones}" required="true" size="5" maxlength="15" id="sesiones" >
                                        <f:validateLongRange minimum="1"/>
                                        <p:ajax event="blur" process="@this" update="btVerificar"/>
                                    </p:inputText>
                                    <h:outputLabel  value="Extra" />
                                    <p:selectBooleanCheckbox id="extra" value="#{jsfAgendaTerapia.isextra}">
                                        <f:ajax  render="panelBotones" execute="extra" />
                                    </p:selectBooleanCheckbox>


                                    <p:message for="sesiones" />
                                    <f:verbatim/>
                                    <p:message for="extra" />
                                </h:panelGrid>
                                <f:verbatim/>
                                <f:verbatim/>

                                <f:verbatim/>
                                <r:commandButton id="btVerificar" execute="datosAgenda panelLista" 
                                                 render=":panelDatos" disabled="#{jsfAgendaTerapia.numeroSesiones eq 0}"  
                                                 value="Verficar" action="#{jsfAgendaTerapia.verificarAgendamiento()}"  
                                                 title="Agregar turno"/>
                            </h:panelGrid>

                            <h:panelGrid    >
                                <h:panelGrid id="busqueda"  columns="6"   >
                                    <h:outputLabel  value="Fecha consulta:" />
                                    <p:calendar size="10"  value="#{jsfAgendaTerapia.fechaFin}" label="Fecha de consulta" title="Fecha de consulta" id="fechaFin">
                                    </p:calendar> 
                                    <h:outputLabel  value="Buscar:" />
                                    <p:selectOneMenu  label="Buscar:" id="tipo" value="#{jsfAgendaTerapia.tipoBusqueda}"   >                              
                                        <f:selectItem itemLabel="Cédula" itemValue="2"/>
                                        <f:selectItem itemLabel="Número carpeta" itemValue="1"/>
                                        <f:selectItem itemLabel="Pasaporte" itemValue="3"/>
                                    </p:selectOneMenu>
                                    <p:inputText value="#{jsfAgendaTerapia.parametroBusqueda}" size="12" maxlength="15" id="valorBusqueda" />
                                    <r:commandLink action="#{jsfAgendaTerapia.buscarHc}" execute="busqueda"  render="datosHcPop fechaFin paciente pan3 mensVal growl panelturnos" title="Buscar historia clínica">
                                        <h:graphicImage url="#{resource['images:buscar.jpg']}" height="30px" width="30px"  styleClass="pic" />
                                    </r:commandLink>

                                </h:panelGrid>

                                <h:panelGrid columns="2" id="paciente" >
                                    <p:dataTable   id="listaConsulta" emptyMessage="No tiene consultas registradas"  value="#{jsfAgendaTerapia.listaConsulta}" var="item"   >
                                        <f:facet name="header">
                                            <h:outputText  value="Consultas" />
                                        </f:facet>
                                        <p:column width="60" headerText="His/clínica">
                                            <h:outputText value="#{item.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}"/>
                                        </p:column>
                                        <p:column headerText="Paciente">
                                            <h:outputText value="#{item.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}"/>
                                        </p:column>
                                        <p:column headerText="Medico">
                                            <h:outputText value="#{item.cexPreparacion.cexAgenda.cexHorariosDia.cexHorario.cexEspecialidadMedico.admMedico.ameNombreFull}"/>
                                        </p:column>
                                        <p:column width="100" headerText="Especialidad">
                                            <h:outputText value="#{item.cexPreparacion.cexAgenda.cexHorariosDia.cexHorario.cexEspecialidadMedico.cexEspecialidad.cesNombre}"/>
                                        </p:column>
                                        <p:column width="30" headerText="Selec">
                                            <p:selectBooleanCheckbox value="#{item.seleccionar}" />
                                        </p:column>
                                    </p:dataTable>
                                </h:panelGrid>




                                <p:message id="mensVal" for="valorBusqueda" />


                            </h:panelGrid>
                        </h:panelGrid>
                    </p:panel>


                    <center>

                        <h:panelGroup  id="panelBotones">
                            <h:panelGrid columns="5" >
                                <r:commandButton id="btGrabar" execute="datosAgenda panelLista" 
                                                 disabled="#{jsfAgendaTerapia.isextra eq true or empty jsfAgendaTerapia.listaAgeTemp}" render=":panelDatos"  
                                                 value="AGREGAR TURNO" action="#{jsfAgendaTerapia.grabarAction}"  
                                                 title="Agregar turno"/>
                                <r:commandButton rendered="#{jsfAgendaTerapia.isextra eq true}"
                                                 value="AGREGAR TURNO EXTRA" type="button" onclick="PF('popupTurnoExtras').show();"   >
                                </r:commandButton>
                                <p:ajaxStatus id="commonStatus">
                                    <f:facet name="start">
                                        <h:graphicImage library="images/ajax" name="status2.gif"/>
                                    </f:facet>
                                </p:ajaxStatus>
                                <p:message id="mensa" for="formDatos">
                                    <f:facet name="errorMarker">
                                        <h:graphicImage library="images/ajax" name="warning.gif"/>
                                    </f:facet>
                                    <f:facet name="infoMarker">
                                        <h:graphicImage library="images/ajax" name="passed.gif"/>
                                    </f:facet>
                                </p:message>
                            </h:panelGrid>

                        </h:panelGroup>





                    </center>

                    <h:panelGrid id="panelLista">

                        <p:dataTable   id="listaVerificada" emptyMessage="No tiene horarios"  value="#{jsfAgendaTerapia.listaAgeTemp}" var="var"   >
                            <f:facet name="header">
                                <h:outputText  value="Citas para paciente" />
                            </f:facet>
                            <p:column width="40" headerText="Acción">
                                <p:selectBooleanCheckbox value="#{var.asignada}" >
                                </p:selectBooleanCheckbox>
                            </p:column>
                            <p:column width="70" headerText="Fecha">
                                <h:outputText value="#{var.cctFecha}">
                                    <f:convertDateTime pattern="dd/MM/yyyy"/>
                                </h:outputText>
                            </p:column>
                            <p:column width="40" headerText="Hora">
                                <h:outputText value="#{var.cctHora}">
                                    <f:convertDateTime pattern="HH:mm"/>
                                </h:outputText>
                            </p:column>
                            <p:column width="80" headerText="His/clínica">
                                <h:outputText value="#{var.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}"/>
                            </p:column>
                            <p:column headerText="Paciente">
                                <h:outputText value="#{var.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}"/>
                            </p:column>
                            <p:column width="150" headerText="Terapia">
                                <h:outputText value="#{var.cexTipoTerapia.cttNombre}"/>
                            </p:column>

                        </p:dataTable>



                        <p:dataTable   id="listaDiaria" emptyMessage="No tiene horarios"  value="#{jsfAgendaTerapia.listaDiaria}" var="var"   >
                            <f:facet name="header">
                                <h:outputText  value="Agenda para fecha actual" />
                            </f:facet>
                            <p:column width="40" headerText="Acción">
                                <p:selectBooleanCheckbox value="#{var.asignada}" >
                                </p:selectBooleanCheckbox>
                            </p:column>
                            <p:column width="70" headerText="Fecha">
                                <h:outputText value="#{var.cctFecha}">
                                    <f:convertDateTime pattern="dd/MM/yyyy"/>
                                </h:outputText>
                            </p:column>
                            <p:column width="40" headerText="Hora">
                                <h:outputText value="#{var.cctHora}">
                                    <f:convertDateTime pattern="HH:mm"/>
                                </h:outputText>
                            </p:column>
                            <p:column width="80" headerText="His/clínica">
                                <h:outputText value="#{var.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}"/>
                            </p:column>
                            <p:column headerText="Paciente">
                                <h:outputText value="#{var.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}"/>
                            </p:column>
                            <p:column width="150" headerText="Terapia">
                                <h:outputText value="#{var.cexTipoTerapia.cttNombre}"/>
                            </p:column>

                        </p:dataTable>

                    </h:panelGrid>

                    <p:growl id="growl"  showDetail="true" life="17000" />  


                    <p:dialog header="Busqueda por nombres"  modal="true" height="400" width="670" id="popupBusquedaPop"  widgetVar="popupBusqueda">
                        <h:panelGrid id="datosPop" columns="8">
                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Apellido paterno:"/>
                            <p:inputText label="Busqueda: Apellido paterno" id="apePPop" size="30" required="true" value="#{jsfAgendaTerapia.apellidoPbusqueda}"/>
                            <f:verbatim/>


                            <f:verbatim/>
                            <h:outputText value="Apellido materno:"/>
                            <p:inputText label="Apellido materno" id="apeMPop" size="30"  value="#{jsfAgendaTerapia.apellidoMbusqueda}"/>
                            <f:verbatim/>

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message  for="apePPop"/>
                            <f:verbatim/>

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message  for="apeMPop"/>
                            <f:verbatim/>

                            <f:verbatim/>
                            <h:outputText value="Primer nombres:"/>
                            <p:inputText label="Primer nombres" id="pNombrePop" size="30"  value="#{jsfAgendaTerapia.pnombrebusqueda}"/>
                            <f:verbatim/>


                            <f:verbatim/>
                            <h:outputText value="Segundo nombre:"/>
                            <p:inputText label="Segundo nombre" id="sNombrePop" size="30"  value="#{jsfAgendaTerapia.snombrePbusqueda}"/>
                            <f:verbatim/>


                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message  for="pNombrePop"/>
                            <f:verbatim/>

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message  for="sNombrePop"/>
                            <f:verbatim/>

                        </h:panelGrid>

                        <h:panelGrid >
                            <center>
                                <h:panelGroup >
                                    <r:commandButton id="btBuscar1" execute="datosPop" render="listaSimpleHistorias commonStatus2 growl" value="BUSCAR" action="#{jsfAgendaTerapia.buscarApellidos}"  title="Buscar">

                                    </r:commandButton>


                                    <p:ajaxStatus id="commonStatus2">
                                        <f:facet name="start">
                                            <h:graphicImage library="images/ajax" name="status2.gif"/>
                                        </f:facet>
                                    </p:ajaxStatus>




                                </h:panelGroup>

                            </center>

                            <p:dataTable id="listaSimpleHistorias"  value="#{jsfAgendaTerapia.listaHClinica}" var="item"  rows="5" paginator="true"  
                                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                         rowsPerPageTemplate="5,10,15"> 
                                <f:facet name="noData">
                                    No se encontro resultados
                                </f:facet>
                                <p:column headerText="#" footerText="#">
                                    <h:outputText value="#{jsfAgendaTerapia.listaHClinica.indexOf(item)+1}"/>
                                </p:column>
                                <p:column headerText="C. Identidad" footerText="C. Identidad">
                                    <h:outputText value="#{item.chcCedula}"/>
                                </p:column>
                                <p:column headerText="Nombre" footerText="Nombre">
                                    <h:outputText value="#{item.chcNombreFull}"/>
                                </p:column>

                                <p:column headerText="Historia Clínica" footerText="Historia Clínica">
                                    <h:outputText value="#{item.chcHistoriaClinica}"/>
                                </p:column>


                                <p:column  headerText="Estado" footerText="Estado">
                                    <h:outputText value="#{item.chcEstado eq 1 ? 'ACTIVO':item.chcEstado eq 2 ?'TEMPORAL':'INACTIVO'}" styleClass="#{item.chcEstado==1?'textoNegrita':item.chcEstado==1?'textoNegrita':'campo-obligatorio textoNegrita'}"/>
                                </p:column> 
                                <p:column  headerText="Acción" footerText="Acción">
                                    <r:commandLink execute="@this" render="paciente panelturnos mensVal datosPop datosHcPop growl" action="#{jsfAgendaTerapia.cargarPaciente(item)}" title="Cargar paciente">
                                        <h:graphicImage library="images/icons" name="page-edit-icon-24.png" styleClass="pic" />
                                    </r:commandLink>


                                </p:column>

                            </p:dataTable>


                        </h:panelGrid>



                    </p:dialog>




                    <p:dialog header="Cancelar turno"   modal="true" height="120"  width="550" id="popupCancelar"  widgetVar="popupCancel">
                        <h:panelGrid id="datosCancelar" columns="4" >

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Motivo por cancelación de turno:" />
                            <p:inputTextarea label="Motivo por cancelación de turno" cols="55" rows="5" 
                                             placeholder="Motivo por cancelación de turno" id="motivoCancelar"  required="true" value="#{jsfAgendaTerapia.motivoCancelar}" >
                            </p:inputTextarea>
                            <p:message for="motivoCancelar"/>


                            <f:verbatim/>
                            <f:verbatim/>
                            <r:commandButton id="btnCan"  execute="datosCancelar listaSimple" 
                                             render="datosCancelar mesaCancelar growl commonStatus listaSimple" 
                                             value="CANCELAR TURNO" action="#{jsfAgendaTerapia.cancelarTurno()}"  title="Cancelar turno"/>


                            <p:message id="mesaCancelar"  for="datosCancelar">
                                <f:facet name="errorMarker">
                                    <h:graphicImage library="images/ajax" name="warning.gif"/>
                                </f:facet>
                                <f:facet name="infoMarker">
                                    <h:graphicImage library="images/ajax" name="passed.gif"/>
                                </f:facet>
                            </p:message>

                        </h:panelGrid>


                    </p:dialog>


                    <p:dialog header="Datos turno extra"   modal="true" height="120"  width="450" id="popupTurnoExtra"  widgetVar="popupTurnoExtras">
                        <h:panelGrid id="datosTurnoExtra" columns="4" >

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Hora de turno:" />
                            <p:calendar pattern="HH:mm" timeOnly="true" label="Hora de turno" 
                                        value="#{jsfAgendaTerapia.horaTurnoExtra}"   id="fechaTurnoExtra" >
                            </p:calendar>
                            <r:commandButton id="btGrabarExtra"  
                                             execute="datosAgenda fechaTurnoExtra" render=":panelDatos " value="AGREGAR TURNO EXTRA"
                                             action="#{jsfAgendaTerapia.grabarTurnoExtra()}"  title="Agregar turno Extra"/>



                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message for="fechaTurnoExtra"/>
                            <f:verbatim/>


                        </h:panelGrid>


                    </p:dialog>





                </h:form>




            </h:panelGrid>
        </center>



    </ui:define>

</ui:composition>
